<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	<script type="text/javascript">
		/*	
			异步
			promise 三种状态: -pending 进行中\待定 
							 -fulfilled 已成功
							 -rejected 已失效
			语法：const p = new Promise(function(resolve, reject) {
					resolve: 将promise的对象状态从 进行中 修改到 已完成 ，并将成功的结果返回出去
					reject: 将promise的对象状态从 进行中 修改到 已失败 ，并将失败的结果返回出去
		})
			一旦状态被修改(pending => fulfilled/rejected),不会再改变
		*/
		const p = new Promise(function(resolve, reject) {
			if (Math.random() < 0.5) {
				resolve("成功了")
			}else{
				reject("失败了~~~~~")
			}
		})
		console.log(p)
		//箭头函数 
		// const fn = (a,b) => {
		// 	console.log(a,b)
		// }

		//.then(成功状态的回调，失败状态的回调)
		//.catch() 接受失败的结果
		//.finally()  不管成功还是失败 都会执行


		// p.then((res) => {
		// 	console.log(res)
		// },(err) => {
		// 	console.log(err)
		// })

		p.then((res) => {
			console.log(res)
		})
		.catch((err) => {
			console.log(err)
		})
		.finally(() => {
			console.log("执行完毕")
		})

		//========================= 改造表白

		function send(name) {
			const pr = new Promise((resolve,reject) => {
				console.log(`${name}:最近在输液，你猜是什么液？想你的液`)
				setTimeout(function() {
				if (Math.random() < 0.1) {
					//同意
					resolve("饼饼我好虚幻你，想你吗打你，不讲道理")
				}else{
					//拒绝
					reject("我那你当哥哥")
				}
			},1000)
			})
			return pr
		}
		//let pp = send("刘志强:") //pp=pr
		send("刘志强:")
		.catch((err) => {
			console.log(err)
			return send("小红")
		})
		.catch((err) => {
			console.log(err)
			return send("小明")
		})
		.catch((err) => {
			console.log(err)
			return send("小黑")
		})
		.catch((err) => {
			console.log(err)
			return send("小白")
		})
		.then((res) => {
			console.log(res)
		}, (err) => {
			console.log(err)
			console.log("遗憾离场")
		})


	</script>
</body>
</html>